package com.spring.utils.api_v4.pojo.salary.task;

import com.spring.utils.api_v4.pojo.UserInfo;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.hibernate.annotations.GenericGenerator;

import javax.persistence.*;
import java.io.Serializable;
import java.time.LocalDate;

/**
 * 员工工资
 */
@Entity
@Table(name = "tb_employee_salary")
@Getter
@Setter
@ToString
@GenericGenerator(name = "jpa-uuid", strategy = "uuid")
public class EmployeeSalaryTask implements Serializable {
    @Id
    @GeneratedValue(generator = "jpa-uuid")
    @Column(length = 32)
    private String id;
    @ManyToOne
    @JoinColumn(name = "user_id", nullable = false)
    private UserInfo userInfo;      // 用户信息
    @ManyToOne
    @JoinColumn(name = "dept_task_id", nullable = false)
    private DeptWageTask task;      // 所属任务
    @Column(nullable = false)
    private double meritPay;    // 绩效工资
    private LocalDate createDate;   // 创建时间
    private String note = "无";      // 说明
    private int state;              // 状态 0:初始化 1:进行中 2:结束

    /********基础工资************/
    protected double posPay;       // 岗位工资
    protected double salaryPay;    // 薪级工资
    protected double ratio;        // 提高10%

    /********绩效工资************/
    protected double monthMerit;   // 月份基础绩效
    protected double yearMerit;    // 年末绩效工资
    protected double ExtraLessonMerit; // 超课时绩效
    protected double counsellorAllowance;  // 辅导员津贴
    protected double specialMerit;     // 专项奖惩绩效
    protected double overtimeMerit;    // 加班绩效

    /********津贴补贴************/
    protected double reformPay;        // 改革性补贴
    protected double reservePart;      // 工改保留
    protected double newEmpSubsidy;    // 2000年1月1日参加工作补贴
    protected double talentIntroPay;   // 人才引进补贴
    protected double proLeaderPay;     // 学科带头人
    protected double officeDirectorPay;// 室主任津贴
    protected double technicianPay;    // 技师津贴
    protected double epidemicPay;      // 卫生防疫津贴
    protected double nursePay;         // 护龄津贴
    protected double securityPay;      // 安保人员特岗津贴
    protected double securityOverPay;  // 安保人员特岗值班加班费
    protected double secretPay;        // 保密津贴
    protected double driverPay;        // 专职司机工作补贴
    protected double politicTeacherPay;// 思政教师岗位津贴
    protected double onlyChildPay;     // 独子费
    protected double examPay;          // 考务费
    protected double trafficPay;       // 交通补助

    /********福利************/
    protected double endowmentIns;     // 养老保险
    protected double careerIns;        // 职业年金
    protected double medicalIns;       // 医疗保险
    protected double unemploymentIns;        // 失业保险
    protected double housingProvidentFund;     // 住房公积金

    /********个税************/
    protected float individualIncomeTax;  //个税
    protected float totalDeduction;   // 代扣款合计
}
